package com.foreknow.constrator;

/**
 * 构造器：构造方法/构造函数
 * 基本语法：
 * public 类名(形式参数1.....n)
 *
 * }
 * 作用：主要是用来初始化的(属性，以及对象)
 * 与方法不同的是构造器没有返回值类型
 *
 * 构造器何时会被调用？ 构造器一定要用new来调用
 *
 * 每个类都会有一个默认的无参数的构造器，如果你显示的定义了一个构造器，那么默认的无参数的构造器就失效了。
 *
 * 构造器的重载：构造器原名称相同，但是参数的类型以及个数不同
 *
 */
public class Person {
  private String name;
  private int age;
  private Person persons;

  public Person() {

  }
    //定义一个构造器
  public Person(String name,int age){
      this.name = name;
      this.age = age;
      this.persons = new Person("tom",20);
  }

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public int getAge() {
    return age;
  }

  public void setAge(int age) {
    this.age = age;
  }

  public static void main(String[] args) {
    Person person = new Person();
    person.setName("tom");
    person.setAge(30);
    System.out.println(person.getName()+"---"+person.getAge());
  }
}
